package com.songzhili.nohttpdemo.api;

import com.google.gson.internal.$Gson$Types;
import com.yanzhenjie.nohttp.rest.Response;

import java.lang.reflect.ParameterizedType;
import java.lang.reflect.Type;

/**
 * Created by Administrator on 2018/1/4 0004.
 */

public abstract class HttpResponseCallBackListener <T>{
//    /**
//     * type用于方便JSON的解析
//     */
//    public Type mType;
//
//    /**
//     * 把type转换成对应的类，这里不用看明白也行。
//     *
//     * @param subclass
//     * @return
//     */
//    static Type getSuperclassTypeParameter(Class<?> subclass) {
//        Type superclass = subclass.getGenericSuperclass();
//        if (superclass instanceof Class) {
//            throw new RuntimeException("Missing type parameter.");
//        }
//        ParameterizedType parameterized = (ParameterizedType) superclass;
//        return $Gson$Types.canonicalize(parameterized.getActualTypeArguments()[0]);
//    }
//
//    /**
//     * 构造的时候获得type的class
//     */
//    public HttpResponseCallBackListener() {
//        mType = getSuperclassTypeParameter(getClass());
//    }
    /**
     * 请求成功而且没有错误的时候调用
     *
     * @param response
     * @param t
     */
    public abstract void onSucceed(int what, Response<T> response,T t);
    public void onFailed(int what, Response response) {

    }

}
